const Controller = require('egg').Controller

/**
 * @controller ApiArticle 文章
 */
class ApiArticleController extends Controller {
	/**
	 * @summary 文章列表
	 * @description 文章列表
	 * @router get /api/articles
	 * @request query number pageSize eg:10 页尺寸
	 * @request query number pageNum eg:1 页码
	 */
	async index() {
		const ctx = this.ctx
		try {
			const { count, rows } = await ctx.service.apiArticle.index(
				ctx.request.query
			)
			const data = {
				list: rows,
				total: count,
			}
			ctx.helper.success(data)
		} catch (e) {
			ctx.helper.error(e)
		}
	}
	/**
	 * @summary 首页文章列表
	 * @description 首页文章列表
	 * @router get /api/homePageArticles
	 */
	async homePage() {
		const ctx = this.ctx
		try {
			const data = await ctx.service.apiArticle.homePage()
			ctx.helper.success(data)
		} catch (e) {
			ctx.helper.error(e)
		}
	}

	/**
	 * @summary 搜索文章
	 * @description 搜索文章
	 * @router get /api/search
	 * @request query string type eg:author 类型author
	 * @request query string keyword eg:admin 关键词
	 */
	async search() {
		const ctx = this.ctx
		try {
			const data = await ctx.service.apiArticle.search(ctx.request.query)
			ctx.helper.success(data)
		} catch (e) {
			ctx.helper.error(e)
		}
	}

	/**
	 * @summary 查看文章
	 * @description 查看文章
	 * @router get /api/articles/{id}
	 * @request path string *id 标识
	 */
	async show() {
		const ctx = this.ctx
		try {
			const { id } = ctx.params
			const data = await ctx.service.apiArticle.show(id)
			if (data.status === 'success') {
				ctx.helper.success(data.body)
			} else {
				ctx.helper.error(data.status)
			}
		} catch (e) {
			ctx.helper.error(e)
		}
	}
}

module.exports = ApiArticleController
